package cn.edu.cug.cs.gtl.plugins.h3dfile;

import cn.edu.cug.cs.gtl.apis.ui.AbstractApplication;
import cn.edu.cug.cs.gtl.apis.ui.actions.AbstractActions;
import cn.edu.cug.cs.gtl.apis.ui.actions.Action;
import cn.edu.cug.cs.gtl.apis.ui.actions.H3DFileActions;
import cn.edu.cug.cs.gtl.plugins.h3dfile.layer.ExportAsCSVAction;
import cn.edu.cug.cs.gtl.plugins.h3dfile.layer.ImportVolFileAction;
import cn.edu.cug.cs.gtl.plugins.h3dfile.layer.VoxelizationToFileAction;
import cn.edu.cug.cs.gtl.protos.Project;
import org.pf4j.Extension;
import org.pf4j.Plugin;

public class H3DFilePlugin extends Plugin {
    public H3DFilePlugin() {
        super();
    }

    @Override
    public void start() {
        super.start();
    }

    @Override
    public void stop() {
        super.stop();
    }

    @Override
    public void delete() {
        super.delete();
    }



    @Extension
    public static class H3DFileActionsImpl  extends AbstractActions implements H3DFileActions {
        @Override
        public void initialize(AbstractApplication theApp) {
            OpenH3DFileAction openH3DFileAction = new OpenH3DFileAction();
            openH3DFileAction.initialize(theApp);
            addAction(openH3DFileAction);

            SaveH3DFileAction saveH3DFileAction =new SaveH3DFileAction();
            saveH3DFileAction.initialize(theApp);
            addAction(saveH3DFileAction);

            //layer popup menu
            ExportAsCSVAction exportAsCSVAction = new ExportAsCSVAction();
            exportAsCSVAction.initialize(theApp);
            addAction(exportAsCSVAction);

            ImportVolFileAction importVolFileAction = new ImportVolFileAction();
            importVolFileAction.initialize(theApp);
            addAction(importVolFileAction);

            VoxelizationToFileAction voxelizationToFileAction = new VoxelizationToFileAction();
            voxelizationToFileAction.initialize(theApp);
            addAction(voxelizationToFileAction);
        }

    }


}
